package com.yuw.tcpsocket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerThread extends Thread {
	
	//服务器ServerSocket
	//注意：服务器ServerSocket监听的端口与客户端的端口号一致，否则无法建立连接
	private ServerSocket ssocket;

	@Override
	public void run() {
	
		try {
			//初始化服务器的ServerSocket
			ssocket=new ServerSocket(8899);
			
			while(true) {
				//使用服务器的ServerSocket创建一个用于和客户端建立连接的socket对象
				Socket socket =ssocket.accept();
				/////////////////接受消息///////////////////
				//与客户端建立连接
				BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
				//读入客户端发送的消息
				String strIn=br.readLine();
				System.out.println("你好，我是服务器，接收到你的消息："+strIn);
			
				/////////////////发送消息//////////////////
				//获取socket的输出流对象
				BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "utf-8"));
				//输出内容到网络，发送给服务器
				String strMsgSend= "hello客户端,我是服务器端！";
				bw.write(strMsgSend);
				//输出信息
				System.out.println(strMsgSend);
				//一般输出流将换行或者回车作为一行内容的结束，所以需要在发送之前输出一个换行符或者回车符表示一行内容结束，然后输出流将其发送到网络给服务器
				//bw.newline();
				bw.write("\n");
				//清空
				bw.flush();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	

}
